fn main() {
    // 关于Send(trait)
    // 1. 只有实现了Send的类型才可以在线程间转移所有权
    // 2. 除Rc<T>外，几乎所有的类型都实现了Send trait
    // 3. 若一个复合类型的所有子类型都实现了Send trait则该复合类型就会被标记为Send
    println!("This is a chapter of introducing 'Sync' and 'Send' trait");
    // 关于Sync(trait)
    // 1. 只有实现了Sync的类型才可以在被多个线程安全的应用
    // 2. 对于任何的类型T，如果&T(T的应用)满足约束Send，那么T就是Sync的
    // 3. 所有的原生类型都是满足Sync的
    // 4. 若一个复合类型的所有子类型都实现了Sync trait则该复合类型就会被标记为满足Sync
    // 5. Rc<T>、RefCell<T>、Cell<T>不满足Sync, Mutex<T>是Sync的

    // 关于安全性
    // 手动实现 Send和Sync是不安全的
}
